package com.mastercard.assets.web.struts.forms;

import com.mastercard.assets.jpa.TblAsset;
import com.mastercard.assets.jpa.TblCuenta;
import com.mastercard.assets.util.dao.MasterCardDAO;
import com.mastercard.assets.web.util.to.BDMTitularTO;
import com.mastercard.assets.web.util.to.CuentasPaquetesTo;
import com.mastercard.assets.web.util.to.ManejadorPaquetesDeAssetBDMTitular;
import com.mastercard.assets.web.util.to.UserLogin;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

public class AssetAsignarPaquetesBDMTitularForm
        extends
		ActionForm
{
        private List< TblCuenta > cuentas ;
        private int asset ;
        private BDMTitularTO bdmT = new BDMTitularTO( ) ;
        private int paquetesTotales ;
        private int paquetesDisponibles ;
        private int paquetesAsignados ;
        
    /**
     * @return the cuentas
     */
    public List< TblCuenta > getCuentas() {
        return cuentas;
    }

    /**
     * @param cuentas the cuentas to set
     */
    public void setCuentas(List< TblCuenta > cuentas) {
        this.cuentas = cuentas;
    }

    /**
     * @return the asset
     */
    public int getAsset() {
        return asset;
    }

    /**
     * @param asset the asset to set
     */
    public void setAsset(int asset) {
        this.asset = asset;
    }

    /**
     * @return the bdmT
     */
    public BDMTitularTO getBdmT( ) {
        return bdmT;
    }

    /**
     * @param bdmT the bdmT to set
     */
    public void setBdmT( BDMTitularTO bdmT ) {
        this.bdmT = bdmT;
    }

    /**
     * @return the paquetesTotales
     */
    public int getPaquetesTotales() {
        return paquetesTotales;
    }

    /**
     * @param paquetesTotales the paquetesTotales to set
     */
    public void setPaquetesTotales(int paquetesTotales) {
        this.paquetesTotales = paquetesTotales;
    }

    /**
     * @return the paquetesDisponibles
     */
    public int getPaquetesDisponibles() {
        return paquetesDisponibles;
    }

    /**
     * @param paquetesDisponibles the paquetesDisponibles to set
     */
    public void setPaquetesDisponibles(int paquetesDisponibles) {
        this.paquetesDisponibles = paquetesDisponibles;
    }

    /**
     * @return the paquetesAsignados
     */
    public int getPaquetesAsignados() {
        return paquetesAsignados;
    }

    /**
     * @param paquetesAsignados the paquetesAsignados to set
     */
    public void setPaquetesAsignados(int paquetesAsignados) {
        this.paquetesAsignados = paquetesAsignados;
    }

    
    public ActionErrors validate( ActionMapping mapping , HttpServletRequest request )
	{
            ActionErrors errors = new ActionErrors( ) ;
            
            List< CuentasPaquetesTo > cuPaTo = new ArrayList< CuentasPaquetesTo >( ) ;
//            TblAsset Asset = MasterCardDAO.getAsset( asset ) ;
            
            HttpSession session = request.getSession( ) ;
            UserLogin user = ( UserLogin ) session.getAttribute( "UserLogin" ) ;
                        
            try
            {
                
                cuentas = MasterCardDAO.getAllActiveCountsWithCountType(  user.getCountType().getCveTipoCuenta( ) ) ;  
                
                
                if( bdmT.getCuentaSLL( ).length > 0 )
                {                    
                    for( int i = 0 ; i < cuentas.size( ) ; i++ )
                    {
                        CuentasPaquetesTo a = new CuentasPaquetesTo( 0 , 0, 0 , 0 ) ;
                        
                        a.setTipo( 1 ) ;
                        a.setCuenta( bdmT.getCuentaSLL( )[ i ] ) ;
                        a.setPaquetes( bdmT.getPaquetesSLL( )[ i ] ) ;
                        a.setPonerQuitar( bdmT.getPonerQuitarSLL( )[ i ] ) ;
                        
                        cuPaTo.add( a ) ;
                    }
                       
                }
                
                if( bdmT.getCuentaDLL( ).length > 0 )
                {                    
                    for( int i = 0 ; i < cuentas.size( ) ; i++ )
                    {
                        CuentasPaquetesTo a = new CuentasPaquetesTo( 0 , 0, 0 , 0 ) ;
                        
                        a.setTipo( 2 ) ;
                        a.setCuenta( bdmT.getCuentaDLL( )[ i ] ) ;
                        a.setPaquetes( bdmT.getPaquetesDLL( )[ i ] ) ;
                        a.setPonerQuitar( bdmT.getPonerQuitarDLL( )[ i ] ) ;
                        
                        cuPaTo.add( a ) ;
                    }
                       
                }
                
                if( bdmT.getCuentaSLR( ).length > 0 )
                {                    
                    for( int i = 0 ; i < cuentas.size( ) ; i++ )
                    {
                        CuentasPaquetesTo a = new CuentasPaquetesTo( 0 , 0, 0 , 0 ) ;
                        
                        a.setTipo( 3 ) ;
                        a.setCuenta( bdmT.getCuentaSLR( )[ i ] ) ;
                        a.setPaquetes( bdmT.getPaquetesSLR( )[ i ] ) ;
                        a.setPonerQuitar( bdmT.getPonerQuitarSLR( )[ i ] ) ;
                        
                        cuPaTo.add( a ) ;
                    }
                       
                }
                
                if( bdmT.getCuentaDLR( ).length > 0 )
                {                    
                    for( int i = 0 ; i < cuentas.size( ) ; i++ )
                    {
                        CuentasPaquetesTo a = new CuentasPaquetesTo( 0 , 0, 0 , 0 ) ;
                        
                        a.setTipo( 4 ) ;
                        a.setCuenta( bdmT.getCuentaDLR( )[ i ] ) ;
                        a.setPaquetes( bdmT.getPaquetesDLR( )[ i ] ) ;
                        a.setPonerQuitar( bdmT.getPonerQuitarDLR( )[ i ] ) ;
                        
                        cuPaTo.add( a ) ;
                    }
                       
                }
                
                if( bdmT.getCuentaSRL( ).length > 0 )
                {                    
                    for( int i = 0 ; i < cuentas.size( ) ; i++ )
                    {
                        CuentasPaquetesTo a = new CuentasPaquetesTo( 0 , 0, 0 , 0 ) ;
                        
                        a.setTipo( 5 ) ;
                        a.setCuenta( bdmT.getCuentaSRL( )[ i ] ) ;
                        a.setPaquetes( bdmT.getPaquetesSRL( )[ i ] ) ;
                        a.setPonerQuitar( bdmT.getPonerQuitarSRL( )[ i ] ) ;
                        
                        cuPaTo.add( a ) ;
                    }
                       
                }
                
                if( bdmT.getCuentaDRL( ).length > 0 )
                {                    
                    for( int i = 0 ; i < cuentas.size( ) ; i++ )
                    {
                        CuentasPaquetesTo a = new CuentasPaquetesTo( 0 , 0, 0 , 0 ) ;
                        
                        a.setTipo( 6 ) ;
                        a.setCuenta( bdmT.getCuentaDRL( )[ i ] ) ;
                        a.setPaquetes( bdmT.getPaquetesDRL( )[ i ] ) ;
                        a.setPonerQuitar( bdmT.getPonerQuitarDRL( )[ i ] ) ;
                        
                        cuPaTo.add( a ) ;
                    }
                       
                }
                
                if( bdmT.getCuentaSRR( ).length > 0 )
                {                    
                    for( int i = 0 ; i < cuentas.size( ) ; i++ )
                    {
                        CuentasPaquetesTo a = new CuentasPaquetesTo( 0 , 0, 0 , 0 ) ;
                        
                        a.setTipo( 7 ) ;
                        a.setCuenta( bdmT.getCuentaSRR( )[ i ] ) ;
                        a.setPaquetes( bdmT.getPaquetesSRR( )[ i ] ) ;
                        a.setPonerQuitar( bdmT.getPonerQuitarSRR( )[ i ] ) ;
                        
                        cuPaTo.add( a ) ;
                    }
                       
                }
                
                if( bdmT.getCuentaDRR( ).length > 0 )
                {                    
                    for( int i = 0 ; i < cuentas.size( ) ; i++ )
                    {
                        CuentasPaquetesTo a = new CuentasPaquetesTo( 0 , 0, 0 , 0 ) ;
                        
                        a.setTipo( 8 ) ;
                        a.setCuenta( bdmT.getCuentaDRR( )[ i ] ) ;
                        a.setPaquetes( bdmT.getPaquetesDRR( )[ i ] ) ;
                        a.setPonerQuitar( bdmT.getPonerQuitarDRR( )[ i ] ) ;
                        
                        cuPaTo.add( a ) ;
                    }
                       
                }
                
                 bdmT.setManejador( cuPaTo ) ;                
                
            }catch( Exception e )
		{
                    MasterCardDAO.closeEntityManager( ) ;
			e.printStackTrace( ) ;
			user.setMessageError( e.getMessage( ) ) ;
		}
               
            MasterCardDAO.closeEntityManager( ) ;
            return errors ;
	}
        
}
